package com.hzlj.position.locate.controller;


import com.fz.common.base.dto.PageParamDTO;
import com.fz.common.base.dto.QueryPageResultDTO;
import com.fz.common.base.dto.ResultDTO;
import com.fz.common.base.office.EasyExcelUtil;
import com.hzlj.position.locate.common.dto.position.PositionQueryParamDTO;
import com.hzlj.position.locate.common.dto.positionSkynet.PositionSkynetAddDTO;
import com.hzlj.position.locate.common.dto.positionSkynet.PositionSkynetQueryResultDTO;
import com.hzlj.position.locate.service.PositionSkynetService;
import com.hzlj.sqjz.system.service.JgService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 【定位记录-天网】接口
 *
 * @author lifh
 * @date 2023-03-31 11:05:35
 */
@Slf4j
@RestController
@RequestMapping("/position/locate/skynet")
public class PositionSkynetController {
    @Resource
    private JgService jgService;
    @Resource
    private PositionSkynetService positionSkynetService;

    /**
     * 保存定位记录-天网
     *
     * @param dto 添加的信息
     * @return 实例对象
     */
    @PutMapping("")
    public ResultDTO<PositionSkynetQueryResultDTO> savePositionSkynet(@RequestBody PositionSkynetAddDTO dto) {
        log.debug("【新增信息】定位记录-天网={}", dto);
        return new ResultDTO<>(positionSkynetService.savePositionSkynet(dto));
    }


    /**
     * 导出 定位记录-天网
     * fileName：传入的文件名称
     */
    @GetMapping("/export")
    public void export(HttpServletResponse response,
                       PositionQueryParamDTO dto) {
        List<PositionSkynetQueryResultDTO> list = positionSkynetService.listPositionSkynet(dto);
        EasyExcelUtil.downCustomerExcel(response,
                "天网抓拍记录",
                "天网抓拍记录",
                jgService.export3Level(PositionSkynetQueryResultDTO::getJgCode, PositionSkynetQueryResultDTO::getJgMc)
                        .add(PositionSkynetQueryResultDTO::getXm, "姓名")
                        .add(PositionSkynetQueryResultDTO::getPositionTime, "抓拍时间")
                        .add(PositionSkynetQueryResultDTO::getPosition, "区域位置")
                        .add(PositionSkynetQueryResultDTO::getWarningTypeText, "状态")
                        .getFields(),
                list
        );
    }


    /**
     * 列表查询 定位记录-天网
     */
    @GetMapping("/list")
    public ResultDTO<List<PositionSkynetQueryResultDTO>> listPositionSkynet(PositionQueryParamDTO dto) {
        log.debug("【查询无分页列表】信息定位记录-天网,PositionQueryParamDTO={}", dto);
        return new ResultDTO<>(positionSkynetService.listPositionSkynet(dto));
    }

    /**
     * 分页查询 定位记录-天网
     */
    @GetMapping("/list/page")
    public ResultDTO<QueryPageResultDTO<PositionSkynetQueryResultDTO>> pagePositionSkynet(PositionQueryParamDTO dto, PageParamDTO pageParamDTO) {
        log.debug("【查询分页列表】信息定位记录-天网,PositionQueryParamDTO={},pageParamDTO={}", dto, pageParamDTO);
        return new ResultDTO<>(positionSkynetService.pagePositionSkynet(dto, pageParamDTO));
    }

}

